home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 April / macformat-023.iso / Shareware in MacFormat / brailler0.5b / brlr ƒ / Shell ƒ / file utilities.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-12-20  |  1.8 KB  |  77 lines  |  [TEXT/MMCC]

  1. #include "file utilities.h"
  2. #include <Processes.h>
  3.  
  4. OSErr GetApplicationFSSpec(FSSpec *theFS)
  5. {
  6.     OSErr                oe;
  7.     ProcessSerialNumber    psn;
  8.     ProcessInfoRec        info;
  9.     
  10.     oe=GetCurrentProcess(&psn);
  11.     if (oe==noErr)
  12.     {
  13.         info.processInfoLength=60;
  14.         info.processName=0L;
  15.         info.processAppSpec=theFS;
  16.         oe=GetProcessInformation(&psn, &info);
  17.     }
  18.     
  19.     return oe;
  20. }
  21.  
  22. OSType GetFileType(FSSpec *myFSS)
  23. {
  24.     HParamBlockRec    paramBlock;
  25.     
  26.     paramBlock.fileParam.ioCompletion=0L;
  27.     paramBlock.fileParam.ioNamePtr=myFSS->name;
  28.     paramBlock.fileParam.ioVRefNum=myFSS->vRefNum;
  29.     paramBlock.fileParam.ioFDirIndex=0;
  30.     paramBlock.fileParam.ioDirID=myFSS->parID;
  31.     if (PBHGetFInfo(¶mBlock, FALSE)!=noErr)
  32.         return 0L;
  33.     
  34.     return paramBlock.fileParam.ioFlFndrInfo.fdType;
  35. }
  36.  
  37. unsigned long GetModificationDate(FSSpec *myFSS)
  38. {
  39.     HParamBlockRec    paramBlock;
  40.     
  41.     paramBlock.fileParam.ioCompletion=0L;
  42.     paramBlock.fileParam.ioNamePtr=myFSS->name;
  43.     paramBlock.fileParam.ioVRefNum=myFSS->vRefNum;
  44.     paramBlock.fileParam.ioFDirIndex=0;
  45.     paramBlock.fileParam.ioDirID=myFSS->parID;
  46.     if (PBHGetFInfo(¶mBlock, FALSE)!=noErr)
  47.         return 0L;
  48.     
  49.     return paramBlock.fileParam.ioFlMdDat;
  50. }
  51.  
  52. OSErr SetModificationDate(FSSpec *myFSS, unsigned long theDate)
  53. {
  54.     HParamBlockRec    paramBlock;
  55.     OSErr            err;
  56.     
  57.     paramBlock.fileParam.ioCompletion=0L;
  58.     paramBlock.fileParam.ioNamePtr=myFSS->name;
  59.     paramBlock.fileParam.ioVRefNum=myFSS->vRefNum;
  60.     paramBlock.fileParam.ioFDirIndex=0;
  61.     paramBlock.fileParam.ioDirID=myFSS->parID;
  62.     if ((err=PBHGetFInfo(¶mBlock, FALSE))!=noErr)
  63.         return err;
  64.     
  65.     FlushVol(0L, myFSS->vRefNum);
  66.     
  67.     paramBlock.fileParam.ioFlMdDat=theDate;
  68.     paramBlock.fileParam.ioCompletion=0L;
  69.     paramBlock.fileParam.ioNamePtr=myFSS->name;
  70.     paramBlock.fileParam.ioVRefNum=myFSS->vRefNum;
  71.     paramBlock.fileParam.ioFDirIndex=0;
  72.     paramBlock.fileParam.ioDirID=myFSS->parID;
  73.     err=PBHSetFInfo(¶mBlock, FALSE);
  74.     
  75.     return err;
  76. }
  77.